/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.deployment.entidade.humana;

import br.com.deployment.entidade.localidade.Endereco;
import br.com.deployment.entidade.acesso.Usuario;
import br.com.deployment.utilitario.EstadoCivil;
import br.com.deployment.utilitario.Sexo;
import java.io.Serializable;
import java.util.Date;
import javax.persistence.*;

/**
 *
 * @author elyjr
 */
@Entity
public class Funcionario implements Serializable {

    private static final long serialVersionUID = 1L;
    @Id
    @SequenceGenerator(name = "seq_funcionario", sequenceName = "seq_funcionario")
    @GeneratedValue(generator = "seq_funcionario", strategy = GenerationType.SEQUENCE)
    private int id;
    @Column
    private String nome;
    @Temporal(TemporalType.DATE)
    private Date datacad;
    @Column(length = 20)
    private String rg;
    @Column(length = 11)
    private String cpf;
    @Enumerated(EnumType.STRING)
    private EstadoCivil estadocivil;
    @Enumerated(EnumType.STRING)
    private Sexo sexo;
    @Column
    private String email;
    @Transient
    private String confirmaemail;
    @Column
    private boolean checkar;
    @Column
    private String chaveAcesso;
    
    @OneToOne(cascade = CascadeType.ALL)
    private Usuario usuario;
   
    @OneToOne(cascade= CascadeType.ALL,fetch= FetchType.EAGER)
    private Endereco endereco;

    public Funcionario() {
    }

       
    
    
    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getCpf() {
        return cpf;
    }

    public void setCpf(String cpf) {
        this.cpf = cpf;
    }

    public Date getDatacad() {
        return datacad;
    }

    public void setDatacad(Date datacad) {
        this.datacad = datacad;
    }

    public Endereco getEndereco() {
        return endereco;
    }

    public void setEndereco(Endereco endereco) {
        this.endereco = endereco;
    }

    

    public EstadoCivil getEstadocivil() {
        return estadocivil;
    }

    public void setEstadocivil(EstadoCivil estadocivil) {
        this.estadocivil = estadocivil;
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public String getRg() {
        return rg;
    }

    public void setRg(String rg) {
        this.rg = rg;
    }

    public Sexo getSexo() {
        return sexo;
    }

    public void setSexo(Sexo sexo) {
        this.sexo = sexo;
    }

    public String getConfirmaemail() {
        return confirmaemail;
    }

    public void setConfirmaemail(String confirmaemail) {
        this.confirmaemail = confirmaemail;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public boolean isCheckar() {
        return checkar;
    }

    public void setCheckar(boolean checkar) {
        this.checkar = checkar;
    }

    public Usuario getUsuario() {
        return usuario;
    }

    public void setUsuario(Usuario usuario) {
        this.usuario = usuario;
    }

    public String getChaveAcesso() {
        return chaveAcesso;
    }

    public void setChaveAcesso(String chaveAcesso) {
        this.chaveAcesso = chaveAcesso;
    }

    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final Funcionario other = (Funcionario) obj;
        if (this.id != other.id) {
            return false;
        }
        return true;
    }

    @Override
    public int hashCode() {
        int hash = 5;
        hash = 31 * hash + this.id;
        return hash;
    }

    @Override
    public String toString() {
        return "Funcionario{" + "id=" + id + ", nome=" + nome + ", datacad=" + datacad + ", rg=" + rg + ", cpf=" + cpf + ", estadocivil=" + estadocivil + ", sexo=" + sexo + ", endereco=" + endereco + '}';
    }
}
